home *** CD-ROM | disk | FTP | other *** search
- /*//////////////////////////////////////////////////////////////////////
- filename: labellist.js
- copyright(c): 2002, 2003 Tiny Software Inc (http://www.tinysoftware.com)
- author: Martin Navratil (mnavratil@tinysoftware.com)
- product: Tiny Personal Firewall 5.x
- description: javascript helper functions for listing applications in combo boxes etc.
- ///////////////////////////////////////////////////////////////////////*/
-
- var HTML_SELECT_HEADER = '<SELECT ',
- HTML_SELECT_TRAILER = '></SELECT>',
- HTML_OPTION_HEADER = '<OPTION value="',
- HTML_OPTION_TRAILER = '</OPTION>';
-
- var STR_ALL_NONSYSTEM = 'All (Non System)',
- STR_ALL_SYSTEM = 'All (System)',
- STR_ALL = 'All';
-
- var AT_LABEL = 0,
- AT_DEFINITION = 1;
-
- var RA_USER = 0,
- RA_SYSTEM = RA_USER + 1,
- RA_BOTH = RA_SYSTEM + 1;
-
-
- function AddAllLabels(list, arrLabelTypes, arrLabelAccounts, strAppSelected, account)
- {
- var strLabelList = "";
- list.moveFirst();
- var arrLabels = new Array();
- while (!list.atEnd())
- {
- var listItem = list.item().LabelID;
- var bIsSystem = false;
- if (arrLabelAccounts[listItem])
- bIsSystem = arrLabelAccounts[listItem];
- if (bIsSystem == account || RA_BOTH == account)
- arrLabels[arrLabels.length] = listItem;
- arrLabelTypes[listItem] = AT_LABEL;
- list.moveNext();
- }
- arrLabels.sort();
- var i = 0;
- for (i = 0; i < arrLabels.length; i++)
- {
- //add option to array
-
- var label = arrLabels[i];
- strLabelList += HTML_OPTION_HEADER + label + '"';
- if (label == strAppSelected)
- strLabelList += ' selected';
- strLabelList += '>' + label + HTML_OPTION_TRAILER;
- }
- return strLabelList;
- }
-
- function SetLabelAccounts(strGroupID, arrLabelAccounts, iIsSystem)
- {
- var Groups = null;
- Groups = ServerAppParser.AppGroupList;
- if (null == Groups)
- return;
- var Group = null;
- try
- {
- Group = Groups.Get(strGroupID);
- }
- catch (e)
- {
- return;
- }
- if (null != Group)
- {
- var Labels = null;
- Labels = Group.LabelList;
- if (null == Labels)
- return;
- var enLabels = new Enumerator(Labels);
- enLabels.moveFirst();
- while (!enLabels.atEnd())
- {
- var strLabelID = enLabels.item().Content;
- if (arrLabelAccounts[strLabelID] != 0)
- arrLabelAccounts[strLabelID] = iIsSystem;
- enLabels.moveNext();
- }
- }
- }
-
- function AddAllGroups(list, arrLabelTypes, arrLabelAccounts, strAppSelected, account)
- {
- var strGrList = "";
- list.moveFirst();
- var arrGroups = new Array();
- while (!list.atEnd())
- {
- var listItem = list.item().AppGroupID;
- if (!listItem)
- listItem = list.item().DllGroupID;
- var strPrefix = listItem.substr(0, 1);
- var bIsSystem = (strPrefix == "$") ? 1 : 0;
- if (arrLabelAccounts)
- SetLabelAccounts(listItem, arrLabelAccounts, bIsSystem);
- if (bIsSystem && RA_SYSTEM == account || !bIsSystem && RA_USER == account || RA_BOTH == account)
- arrGroups[arrGroups.length] = listItem;
- if (arrLabelTypes)
- arrLabelTypes[listItem] = AT_DEFINITION;
- list.moveNext();
- }
- arrGroups.sort();
- var i = 0;
- for (i = 0; i < arrGroups.length; i++)
- {
- //add option to array
- var id = arrGroups[i];
- var strGroupOption = HTML_OPTION_HEADER + id + '"';
- if (id == strAppSelected)
- strGroupOption += ' selected';
- strGroupOption += '>' + id + HTML_OPTION_TRAILER;
- strGrList += strGroupOption;
- }
- return strGrList;
- }
-
- function AddAsterisk(strSelectedLabel, account, arrLabelTypes, strAppSelected)
- {
- var ret = HTML_OPTION_HEADER + '*"';
- if (strSelectedLabel == "*")
- ret += ' selected';
- var strAsterisk;
- switch (account)
- {
- case RA_USER:
- strAsterisk = STR_ALL_NONSYSTEM;
- break;
- case RA_SYSTEM:
- strAsterisk = STR_ALL_SYSTEM;
- break;
- case RA_BOTH:
- default:
- strAsterisk = STR_ALL;
- }
- ret += '>' + strAsterisk + HTML_OPTION_TRAILER;
- arrLabelTypes["*"] = AT_LABEL;
- return ret;
- }
-
- function GenerateLabelList(prio, account, strSelectedLabel)
- {
- arrLabelTypes = new Array();
- var arrLabelAccounts = new Array();
-
- strLabelList = AddAsterisk(strSelectedLabel, account, arrLabelTypes, strSelectedLabel);
- strLabelList += AddAllGroups(new Enumerator(ServerAppParser.AppGroupList), arrLabelTypes, arrLabelAccounts, strSelectedLabel, account);
- strLabelList += AddAllLabels(new Enumerator(ServerAppParser.LabelList), arrLabelTypes, arrLabelAccounts, strSelectedLabel, account);
- if (ClientAppParser != null && prio == PRIOR_NORMAL)
- {
- strLabelList += AddAllGroups(new Enumerator(ClientAppParser.AppGroupList), arrLabelTypes, arrLabelAccounts, strSelectedLabel, account);
- strLabelList += AddAllLabels(new Enumerator(ClientAppParser.LabelList), arrLabelTypes, arrLabelAccounts, strSelectedLabel, account);
- }
- return strLabelList;
-
- }
-
- function GetLabelListHtmlStr(prio, account, id, strSelectedLabel, index)
- {
- var str = HTML_SELECT_HEADER + 'id="' + id + '" ' +
- 'OnChange="OnAppChange(' + prio + ',this,' + index + ', this.value);">'
- + GenerateLabelList(prio, account, strSelectedLabel) + HTML_SELECT_TRAILER;
- return str;
- }
-
- function GenerateDllGroupList(prio, account, strSelectedLabel)
- {
- var strLabelList = '<OPTION value=""';
- if (strSelectedLabel == '')
- strLabelList += ' selected';
- strLabelList += '><None></OPTION>';
- strLabelList += AddAllGroups(new Enumerator(ServerAppParser.DllGroupList), null, null, strSelectedLabel, account);
- if (ClientAppParser != null && prio == PRIOR_NORMAL)
- {
- strLabelList += AddAllGroups(new Enumerator(ClientAppParser.DllGroupList), arrLabelTypes, strSelectedLabel, account);
- }
- return strLabelList;
-
- }
-
- function GetDllGroupListHtmlStr(prio, account, id, strSelectedLabel, index, strDisabled)
- {
- var str = HTML_SELECT_HEADER + 'id="' + id + '" ' + strDisabled +
- ' OnChange="OnDllGroupChange(' + prio + ',this,' + index + ', this.value);">'
- + GenerateDllGroupList(prio, account, strSelectedLabel) + HTML_SELECT_TRAILER;
- return str;
- }
-
-
-